perm filename DART.REG[UP,DOC] blob sn#610125 filedate 1981-09-04 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		DART - Dump and Restore Techinque
C00005 00003		Command Semantics.
C00011 00004		Tape Format
C00015 00005		File Backup Policy
C00018 00006		Privileged commands
C00020 ENDMK
C⊗;
	DART - Dump and Restore Techinque

					R. E. Gorin
					November, 1972
					June, 1973
					November, 1974

Summary:
	DART is a program that saves disk files on magnetic tape  and
restores files from tape to disk.  Dart will be used to make periodic
backups of the file disk.  Dart is also available to users  who  wish
to maintain their own backup tapes.

	Dart Commands

	Dart signifies its readiness to accept a command by typing an
asterisk (*).

	In the description below, braces, { and }, are used to denote
optional  items.  Vertical bar, | , denotes an exclusive - or choice.
Pointed brackets, < and > are used to enclose  syntactic  items  that
are defined below.

	Dart accepts the following commands:


DUMP	  {<dest>←}{<source>}
RESTORE	  {<dest>←}{<source>}
PUMPKIN	  {<dest>←}{<source>}
REWIND	  {<dev>{:}}
EOT	  {<dev>{:}}
ADVANCE	  {FILE|RECORD} {<dev>{:}} {<count>}
BACKSPACE {FILE|RECORD} {<dev>{:}} {<count>}
LOCATE	  {<dest>←}{<source>}
LIST	  {<dest>}←{<source>}
TLIST	  {<dest>}←{<source>}
PLIST
UNPUMPKIN
TURKEY    <tape>
EXIT

<dest> ::= 	{<dev>:}<file>{.<ext>}{[<prj>,<prg>]}
<source> ::=	{{<dev>:}{[<prj>,<prg>]}@}
			{<dev>:}<file>{.ext}{[<prj>,<prg>]}{,<source>}

<dev> is "any" legal device name.
<file> is any file name or *
<ext> is any file extension or *
<prj> is any project code or *
<prg> is any programmer name or *
<count> is any string of decimal digits.

Caution: The  only devices that  are appropriate  here are DSK,  UDP,
and   MTAn.     See  the  semantics   section,  below,   for  further
explanations.

	Commands  are  typed  on   one  line  and  terminated  by   a
carriage-return and line-feed.

The following commands may be typed at monitor command level to invoke DART:
DUMP, RESTORE, REWIND, EOT, ADVANCE, BACKSPACE, LOCATE, TLIST, PUMPKIN,
UNPUMPKIN, and PLIST.
	Command Semantics.

REWIND

	This command will cause the device named to  rewind  to  load
point.   MTA0  is  the  default  if  no device argument is used.  The
device named should be a magnetic tape unit.

EOT
	This  command  will  cause  ADVANCE FILE to be repeated until
either two adjacent file marks are seen  (logical  end  of  tape)  or
until physical end of tape is reached.


ADVANCE and ADVANCE FILE
	This command will cause the tape to  advance  past  the  next
file  mark on the tape.  If a repeat factor is given, then the comand
will be repeated that number of times.

	Caution:   Dart  often  records  more than one disk file on a
magtape file!  Therefore, advance file  will  (sometimes)  skip  more
than one disk file.

ADVANCE RECORD
	Same as ADVANCE FILE  except  that  instead  of  file  marks,
record  marks  are  used.   This command leaves you at the front of a
record.

BACKSPACE and BACKSPACE FILE
	This  command  will  cause the tape to move backwards until a
file mark is seen.   DART then does one  ADVANCE  FILE  operation  to
position  the  tape  at the front of a file.  If a repeat argument is
given then that argument is used to repeat the  backspace  operation.
Only one ADVANCE is used, after all backspace operations.

	Caution BACKSPACE or BACKSPACE 1 will position  the  tape  at
the front of the current magtape file.  BACKSPACE 2 will position one
previous, etc.

BACKSPACE RECORD
	Same as BACKSPACE FILE  except that record marks are  used to
stop the  operation instead of file marks.   After all backspaces are
completed, Dart does an ADVANCE RECORD command. 


LOCATE
	For each file named in the argument list, this command prints
the  tape  numbers  where  this file was dumped and the corresponding
creation dates of the file.

TLIST and LIST
	This command will list on the destination device the names of
the files that are found on the source device.

TURKEY

This command takes as  its argument the number  of a DART system  dump tape,
and tells you who last used it.   It is to find out whose thrug to  squuk if
you find a DART tape lying around not where it belongs.

DUMP
	This command will write on the destination device those files
that are specified  by  the  source  term.  If  there  is  no  source
argument, *.*[current area] is used.

RESTORE
	This command will restore to the destination files  that  are
described by the source term.
	Null destination means *.*[current area].
	Null source = *.*[current area]

	The command RESTORE [*,REG]←[*,REG] will restore all of REG's
files to the areas that they were dumped from.

PUMPKIN

This command  is just like  RESTORE except that  instead of  restoring files
from tape immediately, it queues a request with the Great Pumpkin, who comes
by night to restore your files.  It will restore from the most recent system
dump tape containing the file(s), unless you follow the command name  with a
switch in the form /P781 or /T31 to request a specific DART tape, or  of the
form  /4-Oct-78 or /10/4/78 to  request a  version written  on that  date or
earlier.  (This would be useful  if a file has been overwritten  and dumped,
and you want to restore  an earlier version.) Don't specify a  source device
with this command.

PLIST

This command takes no arguments; it lists all pending PUMPKIN requests.

UNPUMPKIN

This command takes no arguments; it lists all pending PUMPKIN requests from
your programmer name, and allows you to delete the requests selectively.
	Tape Format

	Tapes are usually recorded at 800 BPI,  odd  parity.   Record
length  does not exceed 1280 words. There are three types of records,
header-trailer records, File start records, and Continuation records.


Header-Trailer records:

Word 0:		version,,length
				version is the positive version
				number of the DART that created
				this tape. Length is the length
				of the data following.

Word 1:		'DART  '	sixbit DART

Word 2:		'*HEAD*' or '*TAIL*'
				data in sixbit

Word 3:		time,date	BYTE(3)HIDATE(10)0(11)TIME(12)LODATE
				TIME is in minutes after midnight,
				HIDATE is the high order field of
				date in system format

Word 4:		ppn		the name of the person running
				Dart.

Word 5:		class,,tapno	Tape number of this tape
				Dump class of this dump


Tape numbers are kept only for system  class  dumps.  User  class  is
class  0.   Classes  1  and  2  are  system  classes  (Temporary  and
Permanent).


File-Start Records
Word 0:		-n,,length	-n denotes file-start records.
				length is the number of data words
				that follow. "n" is the format
				number of this tape. (see below)

Word 1:		devnam		name of the source device

Word 2-21			file retrieval of this file as it
				appeared on the disk.

word 22-length			data from the file.

word length+1			exclusive or of words 1-length.

word length+2			if this is 0, skip to next record.
				if this is <0, threat as word 0 above.


File continuation Record
word 0		0,,length	length is the number of data words

words 1-length			data from the file

word length+1			xor of words 1-length above

word length+2			same as in File-start record.


If  a  file start is seen, then at least all of the retrieval data is
present in the current magtape record.

Tape formats:
1	as above
2.	as above, except word 17 of the retrieval (word 21 of the record)
	signifies the record offset. 
	File Backup Policy

	DART will implement the following policy regarding backing up
the disk on tape.

	There are three classes of system dump, Full,  Permanent  and
Temporary.   Full  dumps  will  be made at widely separated intervals
(probably  more  than  6  months).   Permanent  dumps  will  be  made
approximately  once a week. Temporary dumps will be made several times
each week.

	The retention of the Permanent (and Full) Tapes will exceed 1
year.  The retention of the Temporary tapes will exceed 4 weeks.

	The different classes of dump will treat files differently as
follows:

1.  SND and empty (i.e., 0 word) files will not be dumped. (Prior to
    4-Sep-78, TMP files were not dumped.  Prior to 5-Dec-77, RPG files
    were not dumped.  Neither RPG nor TMP are special cases any more.)

2.  Files with protection of 400 or greater will not be dumped.
    ALSO (as of 6-Oct-79) files which are estimated to not fit on one
    tape will NOT be dumped.  As of 6-Oct-79, this refers to any
    file larger than about 2209 Kwords.

3.  Any file not covered by 1 or 2 will be dumped if it has
    the dump date invalid bit set.

3.  A full dump will dump all files except those eliminated by
    1 and 2 above.

4.  A P dump will dump all files (not covered by 1 and 2) that
    have been p-dumped fewer than 2 times and are more than n
    (n=4 at present) days old.

5.  A T dump will dump all files (not covered by 1 and 2) that
    have never been p-dumped and have never been t-dumped.

	The intention of this policy is to  provide  backup  for  the
disk  to  prevent  total  loss of files in a major crash. A secondary
effect is to provide individuals with short term backup against their
own  mistakes.   It  is  not  the intention of this policy to provide
eternal backup of every file that ever appeared on the disk.

	Privileged commands

The  area  [DMP,SYS]  is privileged to make backup dumps of the disk.
The following commands are legal if you happen to be [DMP,SYS].


FDUMP				Full dump of the disk
PDUMP				Permanent Dump of the disk
TDUMP				Temporary-class dump of the disk

PICKUP				Continue with a privileged dump
				after a system crash.


The  FDUMP,PDUMP  and TDUMP commands all take an optional argument of
the form <dev>:← which specifies the tape to dump to.

The PURGE command takes a list of file names to purge.   Purged files are
written on P-class tapes, and deleted from the disk.

MRESTORE is unimplemented and reserved for future use.